
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Serialization library geared towards immutable data storage such as blockchains.
Serialization library geared towards immutable data storage such as blockchains.
Project status: Beta. FC Buffer is a recent refactor from serialization code used in Bitshares and Steem. Some of the serialization code was reduced and the definitions language added. The definition format may change.
Fcbuffer = require('fcbuffer') // or: Fcbuffer = require('./src')
assert = require('assert')
const definitions = {
MessageType: 'FixedString16', // CustomType: built-in type
AccountName: 'FixedString32', // CustomType: built-in type
Message: { // struct
fields: {
from: 'AccountName',
to: 'AccountName',
cc: 'AccountName[]',
type: 'MessageType',
data: 'Bytes' // built-in type
}
}
}
// Warning: Do not use {defaults: true} in production
fcbuffer = Fcbuffer(definitions, {defaults: true})
// Check for errors anywhere in the definitions structure
assert(fcbuffer.errors.length === 0, fcbuffer.errors)
// If there are no errors, you'll get your structs
var {Message} = fcbuffer.structs
// Create JSON serializable object
// returns { from: '', to: '', cc: [ '' ], type: '', data: '' }
Message.toObject()
// Convert JSON into a more compact fcbuffer serializable object
msg = { from: 'jc', to: 'charles', cc: [ 'abc' ], type: '', data: '0f0f0f' }
// Serialize fcbuffer object into a single binary buffer
buf = Fcbuffer.toBuffer(Message, msg)
// returns <Buffer 02 6a 63 07 63 68 61 72 6c 65 73 01 03 61 62 63 00 03 0f 0f 0f>
// Convert binary back into a new (cloned) object
obj = Fcbuffer.fromBuffer(Message, buf)
// Check that the new object matches the original
assert.deepEqual(msg, obj)
// A definition may extend and define other definitions. This works in the initial
// definition or later via the extend function.
fcbuffer2 = fcbuffer.extend({
PermissionName: 'FixedString16',
AccountPermission: {
fields: {
account: 'AccountName',
permission: 'PermissionName'
}
}
})
assert(fcbuffer2.errors.length === 0, fcbuffer2.errors)
var {AccountPermission} = fcbuffer2.structs
AccountPermission.toObject()
// toObject returns: { account: '', permission: '' }
Node 6+ and browser (browserify, webpack, etc)
FAQs
Serialization library geared towards immutable data storage such as blockchains.
The npm package fcbuffer receives a total of 245 weekly downloads. As such, fcbuffer popularity was classified as not popular.
We found that fcbuffer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.